System and method for matching an offer with a quote

ABSTRACT

Described is a system and method that satisfies offers from customers with quotes from suppliers in a way that increases the likelihood of achieving an acceptable match. The system is configured to receive an offer for a product. The system queries in parallel multiple suppliers for rate quotes on the desired product. Each of the suppliers is ranked according to the lowest rate quoted by each supplier. The supplier quoting the lowest rate is selected as the winner of the offer. The system may then evaluate any other rate quotes provided by the winning provider. The system may satisfy the customer&#39;s offer with the winning provider at a higher rate than the winning rate quoted, up to the customer&#39;s offer.

FIELD OF THE INVENTION

The present invention relates to electronic commerce. More specifically, the invention relates to the purchase of travel accommodations, such as hotel rooms, in an electronic exchange transaction.

BACKGROUND OF THE INVENTION

More and more people are purchasing goods and services electronically, such as over the Internet. These mechanisms provide an outlet for suppliers having surplus inventory, and often allow purchasers to obtain desired goods or services at below-market rates. One common example of an electronic exchange between purchasers and suppliers is the “electronic travel agent,” used to place an offer for travel accommodations, such as hotel rooms or airline tickets. However, existing electronic exchanges suffer from various problems. For instance, schemes employed by existing systems to satisfy offers from purchasers with quotes from suppliers do not create an incentive for the suppliers to quote their goods or services at rates significantly below market rates because the suppliers cannot benefit from quoting low rates. One reason is that existing systems satisfy a purchaser's offer by simply querying a list of suppliers to determine whether one or more of them can provide accommodations at a given rate, based on the offer value. The first qualified supplier that satisfies the offer is selected as the winner of the offer, even if the selected supplier does not quote the lowest rate. There is no incentive for a supplier to quote a lower rate.

In addition, existing schemes charge a purchaser the value of the purchaser's offer even if that value exceeds what the purchaser would have paid without the aid of the electronic travel service system. In other words, even if the purchaser's offer exceeds a published rate for the accommodations, existing schemes punish the purchaser by charging her the full value of the offer.

An effective electronic exchange system for satisfying an offer by a purchaser with a quote from a supplier has eluded those skilled in the art.

SUMMARY OF THE INVENTION

Briefly stated, the present invention overcomes the problems identified above by providing a system and method that satisfies offers from customers with quotes from suppliers in a way that increases the likelihood of achieving an acceptable match between the offer and a quote. The system of the present invention is configured to receive from a customer an offer for a product. The product may be any commodity available in commerce, such as goods or services. The offer may include specific details to further identify the product being sought. For example, if the offer is for travel accommodations, the offer may identify a travel destination and a price at which the customer is willing to accept accommodations. The offer may additionally identify an area within the destination to more narrowly focus a list of potential suppliers.

The system queries in parallel multiple suppliers for rate quotes on the desired goods, or service. Then, rather than selecting the first supplier that satisfies the offer, each of the suppliers are ranked according to the lowest rate quoted by each supplier. The supplier quoting the lowest rate is selected as a preliminary winner with the first right to accept the offer provided that the lowest rate is sufficiently below the offer. At that point, the offer can be matched with the supplier quoting the lowest rate. This system improves over existing electronic exchanges in that the first supplier quoting a satisfactory rate is not necessarily the one selected. Rather, the lowest of multiple potential suppliers is selected. Plus, the consumer may be benefited as well by this incentive to the suppliers to provide at least one low rate.

One improvement to the above-described system is a profit sharing program through which suppliers are not significantly harmed by quoting low rates. In this aspect of the invention, each provider may quote different rates for the same goods or services. For instance, a hotel may return two or more different rates for the same hotel room. The system may select the winning provider in the same manner as above (e.g., by the lowest quoted rate) but then evaluate any other rate quotes provided by the winning provider. The system may satisfy the customer's offer with the winning provider at a higher rate (if one was provided) than the winning rate quoted, up to the customer's offer (typically adjusted for a reasonable broker's profit). In this way, even though the provider provides low rate quotes to win the offer, the provider may still realize a much higher rate for the goods or services by quoting additional, higher rate quotes as well. Yet another improvement to the above-described system is an upgrade reward system through which customers are incentivized to provide higher offers for the goods or services. In this aspect of the invention, the offer provided by the customer identifies a minimum quality rating, such as a star rating for a hotel, that the customer is willing to accept. The queries made to potential providers may additionally request the rating of the goods or services being quoted. In this way, the system may rank the potential providers by both rate quotes and ratings. Then the system may identify as the offer winner the potential provider quoting the highest rating that at least satisfies the customer's offer, and that has the lowest quoted rate. In this way, if a provider quotes a rate that satisfies the customer's offer price and that has a higher rating than acceptable by the customer, the customer is rewarded with better-than-acceptable goods or services at the same price. Optionally, the system may calculate a value, based on the offer value, below which the rate quote must be before upgrading the customer, thereby creating a disincentive for the customer to offer extremely low. For example, the system may adjust the offer value by some factor or a percentage and only upgrade for rate quotes below the adjusted value.

These and other aspects of the invention, together with the benefits and advantages realized, will become apparent from a reading of the following detailed description in conjunction with the drawings, in which:

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram representing a typical computer system into which one implementation of the present invention may be incorporated;

FIG. 2 is a functional block diagram generally illustrating one implementation of an electronic travel agent system constructed in accordance with the present invention;

FIG. 3 is a functional block diagram generally illustrating one implementation of an electronic travel agent component of the system illustrated in FIG. 2;

FIG. 4 illustrates, in tabular format, one example of the type of information that may be stored within a customer database employed in one implementation of the present invention;

FIG. 5 illustrates, in tabular format, one example of the type of information that may be stored within a hotel database employed in one implementation of the present invention;

FIG. 6 illustrates, in tabular format, one example of the type of information that may be stored within an offer history database employed in one implementation of the present invention;

FIGS. 7-12 are sample screen displays that may be presented to a user when interfacing with one implementation of the present invention;

FIG. 13 is a logical flow diagram generally illustrating a process performed by one implementation of the present invention to satisfy an offer from a customer with a quote from one or more suppliers;

FIG. 14 is a logical flow diagram generally illustrating the functions performed by one implementation of the present invention to receive customer offer information;

FIG. 15 is a logical flow diagram generally illustrating a process performed by one implementation of the present invention to request rates from hotels within selected areas;

FIG. 16 is a logical flow diagram that generally illustrates a process for identifying a winning hotel from a plurality of responses received by one implementation of the present invention;

FIG. 17 illustrates each of a plurality of hotels charted based on the value of rates provided by those hotels;

FIG. 18 illustrates several of the hotels charted in FIG. 17 stack-ranked in accordance with the process illustrated in FIG. 16; and

FIG. 19 is a logical flow diagram generally illustrating a process for booking accommodations with a hotel having been identified as a winner by one implementation of the present invention.

DETAILED DESCRIPTION

One illustrative electronic exchange system constructed in accordance with the invention may be implemented as an electronic travel agent system. The illustrative system may be used to increase hotel occupancy while benefiting consumers in a way that strives to increase the average daily rate booked through the system. The several components of the system are described first, followed by a description of the operation of the system through the interaction of the several components. The illustrative system described is but one of many alternative electronic exchange purchase transactions that can be implemented in accordance with the invention, and the breadth and scope of the invention is not limited to the particular embodiments described here.

Exemplary Computing Device

FIG. 1 is a functional block diagram generally illustrating a computing device 100, one or more of which may be adapted for use in the illustrative system for implementing the invention. The computing device may be, for example, a personal computer, a handheld device such as a cell phone or a personal digital assistant, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

In its most basic configuration, computing device 100 typically may include at least one processing unit 102 and system memory 104. Depending on the exact configuration and type of computing device, system memory 104 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.), or some combination Of the two. The basic configuration of the device 100 is illustrated in FIG. 1 within dashed line 106.

Device 100 may also have additional features and functionality. For example, device 100 may also include additional storage (removable and/or non-removable) including, but not limited to magnetic or optical disks or tape. Such additional storage is illustrated in FIG. 1 by removable storage 108 and non-removable storage 110. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Memory 104, removable storage 108, and non-removable storage 110 are examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk, storage or other magnetic storage devices, or any other medium which can be used to store information and which can be accessed by device 100. Any such computer storage media may be part of device 100.

Device 100 includes one or more input devices 112 such as a keyboard, mouse, pen, voice input device, touch input device, scanner, or the like. One or more output devices 114 may also be included, such as a video display, audio speakers, a printer, or the like. Input and output devices are well known in the art and need not be discussed at length here.

Device 100 also contains communications connection 116 that allows the device 100 to communicate with other devices 118, such as over a local or wide area network. Communications connection 116 is one example of communication media. Communication media includes any information delivery media that serves as a vehicle through which computer readable instructions, data structures, program modules, or other data may be delivered on a modulated data signal, such as a carrier wave or other transport mechanism. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, electromagnetic (e.g., radio frequency), infrared, and other wireless media. The term computer readable media as used herein includes both storage media and communication media.

Illustrative Electronic Travel Agent System

FIG. 2 is a functional block diagram generally illustrating one implementation of an electronic travel agent system (the system 200) constructed in accordance with the present invention. The system 200 may be implemented as software modules or components stored and executing on one or more computing devices, such as that illustrated in FIG. 1. The system illustrated in FIG. 2 and described here is but one of the many implementations that will become apparent by the teachings of the present invention.

The system 200 includes a customer machine 201, an electronic travel agent 202, an availability determination component 203, such as a Global Distribution System (the booking system), and a network of providers, such as hotels 204, that have agreed to participate in the system 200. Although well-suited for use in conjunction with a hotel network 204, this implementation of the invention has equal applicability to other provider networks and the hotel network 204 is quoted only as one example. As described below, each of these components may include one or more computing devices, such as the computing device 100 described above. Moreover, each of the components may be interconnected over a wide area network, such as the Internet 206. Although the following discussion will make reference to the Internet 206 as a specific wide area network, those skilled in the art will appreciate that any mechanism for connecting multiple computing devices may equally be used.

The customer machine 201 is a computing device connected to the Internet 206 over a network connection 208, such as a dial-up modem connection or digital subscriber line connection. The customer machine 201 may be adapted to interact with other computing devices over the Internet 206 through the use of browsing software 205. The browsing software 205 may be integrated into a subsystem of an operating system executing on the customer machine 201. Via the browsing software 205, a user of the customer machine 201 may retrieve Web pages or other documents from other computing devices attached to the Internet 206, and may additionally provide information to those other computing devices.

Each hotel within the hotel network 204 may either be connected to the Internet 206, such as over network connection 210, or may be directly connected to the booking system 203, such as through a dedicated network connection 212. It should be appreciated that each hotel in the hotel network 204 may be connected to and interface with the booking system 203 in a conventional manner.

The booking system 203 may also have a network connection 214 to the Internet 206 to interface with other computing devices also connected to the Internet 206. The booking system 203 may include and maintain a data store 218 that contains availability and rate information for each of the hotels in the hotel network 204. If it is connected to the Internet 206, the booking system 203 may include information server software 216 for managing transactions with other computing devices over the Internet 206. The booking system 203 is adapted to place queries to or receive from each hotel in the hotel network 204 current availability and rate information, and to store that information in the data store 218. The booking system 203 may make that information available to entities interested in booking travel arrangements, such as the electronic travel agent 202. Moreover, the booking system 203 is adapted to make reservations with hotels in the hotel network 204 upon request by those entities. One example of such a booking system 203 is the Pegasus hotel booking system in common use today.

The electronic travel agent (ETA) 202 may include one or more computing devices, such as that illustrated in FIG. 1, and is connected to the Internet 206 through a network connection 220. The ETA 202 may optionally be connected to the booking system 203 through a dedicated network connection 221. The ETA 202 is illustrated in greater detail in FIG. 3 and described below. Generally described, the ETA 202 includes a Web server component 222, a travel server component 224, a hotel finder component 226, and a data store 228. Although these four components are shown, those skilled in the art, will appreciate that the functions of each described component may be merged into fewer components, or similarly, distributed among more components. The use of four illustrative components is for simplicity of discussion only, and should not be viewed as an exclusive list of components. Through the use of the described components, the ETA 202 interfaces with the customer machine 201 and the booking system 203 to administer an electronic exchange purchase transaction. As described in greater detail below, the ETA 202 interfaces with the customer machine 201, via the Internet 206, to receive an offer for travel accommodations. The ETA 202 retrieves from the booking system 203 quotes for those travel accommodations made by the hotels in the hotel network 204. The ETA 202 then satisfies, if possible, the offer from the customer machine 201 with a winning hotel in the hotel network 204.

FIG. 3 is a functional block diagram generally illustrating one implementation of the ETA 202. As mentioned above, the ETA 202 includes a Web server component 222, a travel server component 224, a hotel finder component 226, and a data store 228. The data store 228 of the described embodiment contains various types of information used by the different components of the ETA 202. For instance, the data store 228 includes a customer database 305 that is used to store information related to customers of the ETA 202. FIG. 4 illustrates, in tabular format, one example of the type of information that may be stored within the customer database 305. Referring to FIG. 4, a table 401 includes a record for each customer of the ETA 202. Each record may include a customer identifier 403, authentication information 405 for the customer, an email address 407 for the customer, and other information 409 associated with the particular customer.

The data store 228 also includes a hotel database 307 that contains information on each hotel in the hotel network 204. The hotel database 307 is queried by the hotel finder 226 to identify particular hotels within the hotel network 204 that may satisfy an offer from the customer machine 201. FIG. 5 illustrates, in tabular format, one example of the information that may be stored within the hotel database 307. Referring to FIG. 5, a table 501 includes a record for each hotel in the hotel network 204. Each record includes a hotel identifier 503 that uniquely identifies each hotel in the hotel network 204. The record may also include a rating 505 for the corresponding hotel, such as the familiar “star ratings” (e.g.; one star equals economy, five stars equals luxury) in widespread use today. The record additionally geographically identifies where the hotel is located by a destination 507 and possibly an area 509 within the destination. The average rate 511 for the hotel may be included within the record, as well as other information 513 associated with the corresponding hotel.

Returning to FIG. 3, the data store 228 also includes an offer history database 309, which contains the storage information related to offers provided to the ETA 202 by various customers. FIG. 6 illustrates, in tabular format, one example of the information that may be stored within the offer history database 309. Referring to FIG. 6, a table 601 includes a record for each offer provided to the ETA 202. Each record includes an offer identifier 603 to uniquely identify the offer, and the customer identifier 605 of the customer that provided the offer. The table 601 includes a column of information used to purge stale records from the offer history database 309. In the described example, a record for an offer is purged from the offer history database 309 once the check-in date 607 corresponding to the offer has passed. In this embodiment, stale records are periodically purged from the offer history database 309 based on the check-in date 607. Other offer information 609 may also be included in the offer history database 309.

Returning once again to FIG. 3, other files 311 may also be contained within the data store 228. For instance, HTML and XML files served by the Web server 222 may be contained within the data store 228, as well as other information.

The Web server component 222 of the ETA 202 controls the interface between the ETA 202 and the customer machine 201. The Web server 222 includes a user interface component 303 configured to assemble and serve Web pages over the Internet 206 to the customer machine 201. The user interface 303 may also receive information provided by the customer machine 201 through those Web pages. The user interface 303 may then make information received from the customer machine 201 available to the Web server 222, which may in turn make that information available to other components of the ETA 202, such as the hotel finder 226 or the travel server 224.

The hotel finder 226 is configured to access the hotel database 307 when an offer is provided to it by the Web server 222. Based on the parameters provided with the offer, the hotel finder 226 accesses the hotel database 307 to identify potential hotels within the hotel network 204 that may satisfy the offer. It should be noted that the hotel finder 226 need not contact the hotels directly or the booking system 203 to identify hotels that may potentially satisfy the offer. Rather, sufficient information about the participating hotels in the hotel network 204 is stored locally within the hotel database 307.

The Web server 222 and the hotel finder 226 also interface with the travel server 224. The travel server 224 is a component of the ETA 202 configured to interface with the booking system 203 to query for availability and rates of the hotels and the hotel network 204. The travel server 224 is also configured to make hotel reservations with the booking system 203. The travel server 224 includes a sorter component 313 that is configured to manipulate data received from the booking system 203 to rank potential hotels in accordance with one embodiment of the invention.

Illustrative User Interface Screens

FIGS. 7-12 are sample screen displays that may be presented to a user of the customer machine 201 when interfacing with the ETA 202. Each of the sample screen displays represents one or more HTML or XML pages assembled and served by the user interface component 303 of the Web server 222, interpreted and rendered by the Web browsing software 205 of the customer machine 201. The sample screen displays are provided as examples only, and the particular layout of the sample screen displays are not critical to a proper functioning of the invention.

FIG. 7 is a graphical representation of an initial screen display 701 presented to a user to begin the offer process. In this screen display 701, the user is prompted with a destination field 703 so that the user may identify the destination of the travel, such as a particular city. In this implementation, the destination field 703 is a drop-down box that contains pre-selected destination names from which the user may choose, corresponding to at least some of the hotels that have agreed to participate. The user is also prompted with a check-in field 705 and a check-outfield 707 which together allow the user to define the desired lodging dates. By activating the next button 709, the user causes the information provided in the several fields on as the initial screen display 701 to be posted to the Web server 222, where it is stored. Activating the next button 709 may also cause the user interface component 303 to transmit to the customer machine 201 an area selection screen display.

FIG. 8 is a graphical representation of an area selection screen display 801. Each particular destination (e.g., a city) may be further subdivided into “areas” to allow the user to more narrowly specify the location where the user will travel. In this embodiment, the area selection screen display 801 prompts the user with a map 803 of the particular destination previously identified. Within the map 803 are graphical representation of areas from which the user may choose. For instance, in the sample screen display illustrated in FIG. 8, map 803 includes four areas (midtown, downtown, upper east side, upper west side) within the selected destination.

The area selection screen display 801 also includes selection fields 805 that allow the user to select, such as by clicking on the check boxes or the map, one or more areas of interest to the user within the selected destination. By activating the next button 809, the user causes the information provided in the several fields on the area selection screen display 801 to be posted to the Web server 222, where the information is stored. Activating the next button 809 may also cause the user interface component 303 to transmit to the customer machine 201 an offer-price screen display.

FIG. 9 is a graphical representation of an offer-price screen display 901. In this screen display 901, the user is prompted to enter an offer price in an offer price field 903. The user is also prompted to identify a minimum acceptable hotel class rating, such as through a series of radio-button selection fields 905.

The offer-price screen display 901 may be generated by the user interface component 303 of the Web server 222 based on information provided through the other screen displays. For example, the web server 222 (FIG. 3) may query the hotel database 307, via the hotel finder 226, for information about the hotels within the area or areas selected by the user in the area selection screen display 801. That information may then be incorporated into the offer-price screen display 901 when presented to the customer machine 201. In that way, the user may be presented with information tailored to the specific area of interest. More specifically, the offer-price screen display 901 may include the average published rates 907 for the participating hotels in the selected areas. Moreover, if there are no hotels of a particular class rating in the selected area, those nonexistent class ratings are not presented in the offer-price screen display 901 (e.g.; no one-star or five-star hotels in the selected area). Optionally, the offer-price screen display 901 (or any other screen display) may provide the customer with an option of identifying particular hotels that the customer deems to be undesirable, and which should be avoided during the electronic exchange process. Again, by activating the next button 909, the user causes the information provided in the several fields on the offer-price screen display 901 to be posted to the Web server 222, where the information is stored. Activating the next button 909 may also cause the user interface component 303 to transmit to the customer machine 201 an identification screen display.

FIG. 10 is a graphical representation of an identification screen display 1001 that may be used to prompt the customer to identify himself to the ETA 202 and initiate the offer matching process. The customer may be presented with a customer ID field 1003 and a password field 1005. Together those fields allow the customer to identify himself if the customer already has an account with the ETA 202. If not, then the customer may activate a create account button 1007 to retrieve a create account screen display, illustrated in FIG. 11 and described below. The identification screen display 1001 may additionally include a check box field 1009 to allow the customer to request that the password be saved to the customer machine 201. The identification, screen display 1001 may additionally prompt the customer for an e-mail address 1011 to which confirmation may be transmitted. By activating the offer button 1013, the customer may cause the information provided on the identification screen display 1001 to be transmitted to the ETA 202, thereby causing the ETA 202 to begin attempting to find a match for the offer.

FIG. 11 is a graphical representation of a create account screen display 1101 that may be used to allow the customer to create an account with the ETA 202. The various input fields on the create account screen display 1101 allow the customer to provide sufficient information to create the account. For example, the customer may provide a desired customer ID 1103 (e.g., screen name), a desired password 1105, an e-mail address 1107, a home or mailing address 1109, credit card information 1113, and/or other information, such as travel preferences 1115. Activating the create button 1117 causes the information in the various fields to be posted to the Web server 222, which in turn stores the information as a new record in the customer database 305. The create button 1117 may additionally return control to the identification screen display 1001 to proceed with the current offer transaction.

FIG. 12 is a graphical representation of a reporting screen display 1201 that may be used to report a successful electronic exchange match (as described in detail below) to the customer machine 201. The reporting screen display 1201 may present the customer with confirmation that the customer's offer has been satisfied, or with notice that it was not. As can be understood, when the system 200 attempts to book the travel services, the quotes supplied by the providers other than a satisfying quote are not shown to the user. The sample reporting screen display 1201 of FIG. 12 reflects a confirmation of successfully satisfying the offer. The transaction particulars (e.g., the amount charged to the customer's credit card) may be presented to the user as a record of the transaction.

In summary, the preceding discussion has been directed to describing the configurations and functions of each of the several components, data structures, and subsystems of the electronic travel agent system generally depicted in FIG. 2. The following discussion is presented as a detailed description of the interactions of the described components, data structures, and subsystems through processes performed in accordance with implementations of the invention.

Operation of an Exemplary Electronic Exchange Matching System

FIGS. 13-19 are logical flow diagrams that generally illustrate several processes performed by the illustrative electronic travel agent system illustrated in FIGS. 1-12 and described above. The general and specific operation of the system 200 is illustrated through the several flow diagrams described below, with reference to the components of the system described above and illustrated in FIGS. 1-12.

FIG. 13 is a logical flow diagram generally illustrating a process performed by the system 200 to satisfy an offer from a customer with a quote from one or more suppliers. The process begins at step 1303, where the system 200 receives customer offer information. The functions performed at step 1303 are illustrated in detail in FIG. 14 and described below. Briefly described, the customer provides sufficient information for the system 200 to initiate the offer matching process. For example, in the described embodiment, the customer should at least identify an offer price and a description of the goods or services, such as a travel destination. The customer may additionally identify an area within the destination and a minimum desired hotel class rating. In addition, the system 200, may request payment (e.g., credit card) information from the customer prior to proceeding with the offer process. Once that information is received, the process continues to step 1305.

At step 1305, rates are requested from suppliers (e.g., hotels) that may possibly satisfy the customer's offer. The functions performed at step 1305 are illustrated in detail in FIG. 15 and described below. Briefly described, the ETA 202 identifies hotels within the hotel network 204 that are within the destination (and area if appropriate) identified in the customer's offer. If a minimum hotel class rating was specified, only hotels, satisfying at least that rating are identified. The ETA 202 then requests rates from those identified hotels. For reasons that are explained below, each hotel may return a ladder of rates for the particular accommodations sought. In other words, a hotel may return several, different rates that the hotel is willing to accept for the accommodations (i.e., the same hotel room). After the rates are returned from the identified hotels (or a timeout has occurred), the process continues to step 1307.

At step 1307, the “winning” hotel is identified. The functions performed at step 1307 are illustrated in detail in FIG. 16 and described below. Briefly described, the ETA 202 identifies the hotel returning the lowest rate as the winning hotel. If the offer includes a minimum hotel rating, the ETA 202 may identify the hotel having the highest rating and the lowest price as the winning hotel. It should be appreciated that this brief description assumes that at least one hotel returned a rate below the customer's offer (factoring in a reasonable broker's profit). After the winning hotel has been identified, the process continues to step 1309.

At step 1309, the accommodations are booked with the winning hotel. The functions performed at step 1309 are illustrated in detail in FIG. 19 and described below. Briefly described, the ETA 202 determines whether the winning hotel provided other rates for the accommodations. As mentioned above, each hotel may provide several, different rates for the same accommodations. If the winning hotel provided other rates, the system books the highest rate provided that is still below the customer's offer (adjusted to account for transactional costs, desired broker's profit, and the like). Thus, although the winning hotel provided the lowest rate to win the offer, the hotel is still able to increase its average daily rate for accommodations booked through the system 200 by providing rates in addition to the lowest acceptable rate.

At step 1311, the customer is charged for the accommodations. Typically, the customer's credit card is charged the offer amount, unless, in rare circumstances, the offer amount actually exceeds the published rate for the winning hotel. In that case, to protect the customer, the customer is only charged the published rate. It should be noted that the customer might be charged taxes, which may make the actual amount charged to the customer's credit card slightly higher than the offer amount. Alternatively, the offer amount may be adjusted in advance to reflect an estimate of the taxes that will be charged, in which case the amount charged to the customer's credit card may not exceed the offer amount. Once the customer has been charged, and appropriate notifications given, the process illustrated in FIG. 13 terminates.

FIG. 14 is a logical flow diagram generally illustrating the functions performed at step 1303 of the process illustrated in FIG. 13 to receive customer offer information. The process of FIG. 14 begins at step 1403, where the customer is prompted for information about the customer's travel plans, in particular the travel destination (e.g., a city) and the dates of travel. For example, the customer may be presented with the initial screen display 701 illustrated in FIG. 7 and described above.

At step 1405, the ETA 202 receives the travel information from the customer. The travel information may be received at the Web server 222 via the user interface component 303. As mentioned above, the information provided in each of the several data entry fields of the initial user interface 701 may be transmitted to the Web server 222 in response to activating the next button 709.

At decision step 1407, the ETA 202 determines whether the destination provided with the travel information includes more than a single area. The Web server 222 may issue a request to the hotel finder 226 to make the determination. The hotel finder 226 may query the hotel database 307 to determine whether the identified destination includes multiple areas. If not, the process continues to step 1413, described below. If the identified destination does include multiple areas, the process continues to step 1409.

At step 1409, the customer is prompted to select an area within the destination. To perform this step, the Web server 222, via the user interface 303, may present the customer machine 201 with the area selection screen 801. As discussed above, the area selection screen presents the customer with two or more areas from which to choose one or more desired areas. At step 1411, the Web server 222 receives the selected area or areas from the customer machine 201 and the process continues to step 1413.

At step 1413, the customer is prompted to provide a desired hotel rating and a desired offer price. The customer may be presented with the offer-price screen 901 illustrated in FIG. 9 and described above. Optionally, the Web server 222, via the hotel finder 226 and hotel database 307, may identify which class (e.g., hotel star rating) of accommodations is available within the customer's selected area or areas. Likewise, the Web server 222, via the hotel finder 226 and hotel database 307, may calculate an average rate for each class of hotel. That information may be incorporated into the offer-price screen 901 prior to transmission to the customer machine 201. In that manner, the customer is presented with only options that have actual meaning in the customer's selected areas. The ETA 202 receives, via the Web server 222, the customer's minimum desired hotel rating and the offer price at step 1415.

FIG. 15 is a logical flow diagram generally illustrating a process performed by the ETA 202 to request rates from hotels within the customer's selected areas. The process begins at step 1503 where the hotels within the hotel network 204 that satisfy the customer's defined criteria are identified. For instance, the hotel finder 226 may retrieve the hotel identifiers for those hotels in the hotel database 307 that are within the customer's selected areas and which have the customer's minimum desired rating. Alternatively, the hotel finder 226 may retrieve only a limited number of the hotels from the hotel database 307. For example, to avoid overwhelming the booking system 203, the hotel finder 226 may retrieve only ten (or any other number) randomly-selected hotels within the selected areas. The hotel finder 226 may additionally retrieve a number of identifiers associated with hotels having a higher rating than the minimum set by the customer. Once the potential hotels are identified, the process continues to step 1505.

At step 1505, a request for rates and availability is issued to the booking system 203 for each hotel identified at step 1503. Those skilled in the art will appreciate that each request may be issued by the travel server 224 to the booking system in the form of an “avail” message including the hotel identifier 503 and a rate plan code. The hotel identifier 503 identifies the particular hotel from which availability and rates are requested, while the rate plan code indicates to the booking system 203 that specially negotiated rates are being requested. The request additionally includes other information such as the dates of travel, number of rooms, number of occupants, smoking preference, and the like. A separate request is issued for each hotel.

The process waits at decision step 1507 until a response is received for each request transmitted, or until a timeout occurs. If all the responses are received, the process returns to step 1305 of the process illustrated in FIG. 13. If a timeout occurs, the process returns to step 1305 with those responses that have been received.

FIG. 16 is a logical flaw diagram which, in conjunction with FIGS. 17 and 18, generally illustrates a process for identifying a winning hotel from those responses received by the travel server 224. Steps 1603-1611 (within the dashed-line box) illustrate a subprocess by which the relevant hotels are grouped for evaluation. Steps 1603-1611 are best described with reference to the chart illustrated in FIG. 17. The process illustrated in FIG. 16 will be described in the context of an example hotel-rate query in which eight hotels (Hotel A through Hotel H) each returned a set of rates for accommodations. The offer amount for this example is $150. The lowest rate provided by each hotel is a follows: Hotel A $122, Hotel B $132, Hotel C $152, Hotel D $144, Hotel E $137, Hotel F $120, Hotel G $127, and Hotel H $123.

At step 1603, the ETA 202 calculates a value, BV₁, that represents the customer's offer amount adjusted for the transactional costs of booking the accommodations and also adjusted for any promotional or other special circumstances. BV₁ is calculated using the following equation:

BV ₁=Offer*(1−X)−Y+Z

where “Offer” is the customer's offer amount, “X” is the cost of the transaction as a percentage, “Y” is a fixed cost of the transaction, and “Z” is a factor which allows for promotions or other variances to the equation (may be either positive or negative, depending on circumstances). Thus, BV₁ is the value above which it is economically impractical to pursue booking accommodations. In this example, the offer amount is $150 and the calculated value of BV₁ is $140.

At step 1605, the ETA 202 calculates another value, BV₂, that represents the customer's offer amount adjusted only for the transactional costs and for a minimum desired profit. BV₂ is calculated using the following equation:

BV ₂=Offer*(1−X)−Y+P

where “Offer” is the customer's offer amount, “X” is the cost of the transaction as a percentage, “Y” is a fixed cost of the transaction, and “P” is the minimum desired profit for the transaction. In this example, the offer amount is $150 and the calculated value of BV₂ is $130.

At decision step 1607, a determination is made whether hotels have provided rate quotes below BV₁. In other words, if it would mot be economically practical to book a reservation at any of the rates quoted by the selected hotels, then the customer's offer amount is too low and the process returns an error at step 1609. The error may be handled in any conventional manner, such as by prompting the customer for more information or simply indicating to the customer that a match could not be found. In addition, the offer history database 309 may be updated to reflect the offer.

At step 1611, the hotels are each assigned to a Group according to the lowest rate provided by each hotel. The functions performed at step 1611 are best described with reference to the chart illustrated in FIG. 17. Referring now to FIG. 17, there is shown a chart having each hotel (e.g., Hotel A to Hotel H) along the X-axis, and dollar values along the Y-axis. The customer's offer 1702 is represented by the uppermost dashed line. Also plotted are the computed values of BV₁ 1704 and BV₂ 1706. The data points plotted on the chart represent the lowest rate quoted by each of the several hotels. For example, Hotel A, a four-star hotel, provided a rate quote below BV₂. It should be appreciated that each of the several hotels may have provided multiple rate quotes, but only the lowest provided by each is represented on the chart in FIG. 17.

Returning to step 1611 of FIG. 16, and still referring to FIG. 17, those hotels with rates within the range between BV and BV₂ (e.g., $130<rate<$140) are assigned to Group A, while, those hotels with rates below BV₂ (e.g., rate<$130) are assigned to Group B. Thus, in this example, Hotels B ($132) and E ($137) are in Group A, while Hotels A ($122), F ($120), G ($127), and H ($123) are in Group B. Those hotels not having a lowest rate below BV₁ (e.g., Hotels C ($152) and D ($144)) are discarded.

At step 1613, the hotels in Groups A and B are stack ranked. The hotels in Group A (e.g., Hotels B and E) are ranked strictly according to price (e.g., without regard to hotel class), e.g., the lower the price the higher the ranking. The hotels in Group B (e.g., Hotels A, F, G, and H) are ranked first according to hotel class rating (e.g., the higher the rating, the higher the ranking), and then by price (again, the lower the price, the higher the ranking). The resulting stack is illustrated in FIG. 18. Thus, it will be appreciated that the hotels are ranked as follows:

highest Hotel A $122 4 star Hotel G $127 4 star Hotel F $120 3 star Hotel H $123 3 star Hotel B $132 3 star lowest Hotel E $137 4 star

At step 1615, the hotel ranked the highest (Hotel A in this example) is selected as the winning hotel. It should be appreciated, with reference to FIG. 17, that Hotel A is the winning hotel despite the fact that another hotel, Hotel F, actually provided a lower rate quote $120<$122). Indeed, under the scheme employed by this embodiment of the invention; even Hotel G ranks above Hotel F despite the higher cost of Hotel G (i.e., $127 versus $120). This is a result of giving preference to the'hotel class rating over price for those Hotels that provide rate quotes below BV₂. When the winning hotel is selected the process returns the winner to step 1307 of the process illustrated in FIG. 13.

FIG. 19 is a logical flow diagram generally illustrating a process for booking the accommodations with the winning hotel. It will be appreciated from the following discussion that, although the hotel having the lowest quoted rate is selected as the winner of the offer, the actual rate booked for the accommodations may be higher than the winning rate if the winning hotel provided multiple rates. The process begins at decision block 1903 where a determination is made whether the rate used to select the winning hotel is below BV₂. For instance, the travel server 224 or other component of the ETA 202 may compare the winning hotel's rate against the value of BV₂ calculated above. If that rate is not below BV₂, the process continues to step 1905, where the lowest rate is selected to be booked for the accommodations. However, if the winning rate is below BV₂, the process continues to step 1907.

At step 1907, the travel server 224 determines whether the winning hotel provided any other rates for the accommodations. As mentioned above, in response to the request for availability, the several hotels may submit several different rates for the same accommodations. If the winning hotel provided other rates in addition to the rate that won the offer, the travel server 224, at step 1909, selects the highest such rate that is still below BV₂ as the rate to be booked. In this manner, although the hotel was willing to provide accommodations at the winning rate, the hotel may be benefited by the system 200 in the form of bookings at rates that are higher than the lowest rate risked by the hotel, yet still satisfy the customer's offer.

At decision step 1911, a determination is made whether the rate selected for booking (e.g., either the winning rate or a higher rate) is higher than the winning hotel's published rate for the accommodations. Decision step 1911 is essentially a customer-protection reality check to ensure that customers are not charged for accommodations made through the system 200 in excess of what would be charged having gone through conventional travel arrangements. If the selected rate is above the published rate, then, at step 1913, the published rate is selected for booking and the process continues to step 1915. Otherwise, the currently selected rate remains the desired rate and the process continues to step 1915.

At step 1915, the travel server 224 attempts negotiate the purchase of the product, in this example attempts to book the accommodations with the booking system 203 at the selected rate. If, at decision step 1917, the travel server 224 is successful at booking the accommodations at the selected rate, the process returns success to step 1309 illustrated in FIG. 13. However, if the travel server 224 fails to successfully book the accommodations, the process continues to step 1921.

At step 1921, the travel server 224 was unable to book the accommodations with the winning hotel; for example, a hotel providing a rate quote may respond that it no longer has availability at that rate. Accordingly, the winning hotel is removed from the ranked list of potential hotels (illustrated in FIG. 18). Then, at step 1923, the newly-highest ranking hotel is selected as the new winning hotel. The process then returns to decision step 1903 and repeats as described above.

Although the system chosen to describe the present invention is an electronic travel agent system, those skilled in the art will appreciate that many other electronic exchanges may benefit equally from the present invention. Moreover, the described implementations of the invention are susceptible to various modifications and alternative constructions. It should be understood, that there is no intention to limit the invention to the specific form or forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention. 

1. A computer-implemented method of matching an offer for product with a supplier, comprising: receiving an offer for a product, wherein the offer includes an offer price submitted by a customer; obtaining, by a computing system corresponding to one or more computing devices, a plurality of responses to the offer, wherein at least one of the plurality of responses include a first and a second price quote from a supplier, wherein the first price quote is less than the second price quote and wherein at least one of the plurality of responses include a rating provided by a respective supplier, the rating associated with the product; and after obtaining the plurality of responses: identifying, by the computing system, qualifying price quotes for the product from the plurality of responses, wherein the qualifying price quotes correspond to price quotes less than the offer price; selecting, by the computing system, a qualifying price quote based on at least one of a lowest price quote and a rating provided by a supplier; identifying, by the computing system, a supplier associated with the selected price quote; and causing, by the computing system, a matching of the offer for the product with the identified supplier.
 2. The computer-implemented method of claim 1, wherein the offer further includes a description of the product.
 3. The computer-implemented method of claim 1, wherein the product is a travel service.
 4. The computer-implemented method of claim 1, wherein causing the matching of the offer for the product includes making a reservation for a travel service provided by the selected supplier.
 5. The computer-implemented method of claim 1, wherein selecting qualifying quotes for the product further comprises determining a threshold value corresponding to a minimum price quote and excluding price quotes above the threshold value.
 6. A method, executed on a query server in response to receiving an offer for a product from a client computer, for matching the offer with a quote from a seller, the method comprising: at the query server: obtaining a plurality of responses from sellers, wherein each response comprises a price quote for the product and wherein at least one response from a first seller comprises at least two quotes for the product, wherein the at least two quotes for the product from the first seller are different; and after obtaining the plurality of responses: identifying qualifying price quotes from the plurality of responses, wherein the qualifying quotes correspond to price quotes for the product that are less than a price associated with the offer, and for the qualifying quotes: selecting a price quote of the qualifying quotes based on at least one of price and rating associated with the product, wherein at least one response from the plurality of response includes multiple price quotes from a same seller; identifying a seller associated with the selected price quote; and causing the matching of the offer received from the client computer to a quote from the identified seller.
 7. The method of claim 6, wherein the offer received from the client computer identifies a minimum quality rating and a maximum price for the product that would be accepted in a quote from one of the plurality of sellers.
 8. The method of claim 7 further comprising publishing the offer for the product received from the client computer to the plurality of sellers in a quote while withholding the maximum price for the product that would be accepted.
 9. The method of claim 7, wherein identifying qualifying price quotes includes identifying price quotes that are associated with a quality rating for the product that at least matches the minimum quality rating identified in the offer.
 10. The method of claim 7, wherein identifying qualifying quotes includes determining a first price according to the price associated with the offer received from the client computer, and identifying price quotes from the plurality of responses that are less than the first price.
 11. The method of claim 7, wherein identifying qualifying quotes includes determining a first price according to the price associated with the offer received from the client computer; and identifying price quotes from the plurality of responses that specify a quality rating for the product that at least matches the minimum qualify rating identified in the offer and that are less than the first price.
 12. The method of claim 11, wherein selecting the price quote of the qualifying quotes comprises ranking the qualifying quotes according to an identified price quote and qualify rating, and selecting a price quote that identifies the lowest price for the product.
 13. The method of claim 11, wherein selecting the price quote of the qualifying quotes comprises ranking the qualifying quotes according to an identified price quote and qualify rating, and selecting a price quote associated with a highest qualify rating for the product.
 14. The method of claim 11, wherein selecting the price quote of the qualifying quotes comprises ranking the qualifying quotes according to an identified price quote and quality rating, and selecting a price quote associated with a highest quality rating and lowest price for the product.
 15. The method of claim 11, wherein causing the matching the offer received from the client computer to the quote obtained from the identified seller comprises: evaluating all price quotes obtained from the identified seller; and causing a matching of the offer received from the client computer with a price quote from the identified seller corresponding to a highest price quote.
 16. The method of claim 11, wherein causing the matching the offer received from the client computer to the quote obtained from the identified seller associated with the most preferential quote comprises: evaluating all price quotes obtained from the identified seller; and causing a matching of the offer received from the client computer with a price quote from the identified seller associated with a highest quality rating.
 17. The method of claim 11, wherein causing the matching the offer received from the client computer to the quote obtained from the identified seller comprises: evaluating all price quotes obtained from the identified seller; and causing a matching of the offer received from the client computer with a price quote from the identified seller that identifies a highest quality rating and a highest price quote.
 18. The method of claim 11, wherein the first price is calculated as a function of a desired profit by the query. 